// 测试时间解析功能
const http = require('http')

async function testTimeParsing() {
  console.log('🧪 测试时间解析功能...\n')
  
  // 验证“下班前/今天结束前”是否能被AI推断为工作日下班时间
  const testCase = '今天下班前准备好明天的会议资料'
  console.log(`📝 测试用例: "${testCase}"`)
  
  try {
    const postData = JSON.stringify({ text: testCase })
    
    const options = {
      hostname: 'localhost',
      port: 5000,
      path: '/api/ai/smart-parse',
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Content-Length': Buffer.byteLength(postData)
      }
    }
    
    const result = await new Promise((resolve, reject) => {
      const req = http.request(options, (res) => {
        let data = ''
        res.on('data', (chunk) => { data += chunk })
        res.on('end', () => {
          try {
            const parsed = JSON.parse(data)
            resolve({ status: res.statusCode, data: parsed })
          } catch (e) {
            resolve({ status: res.statusCode, data: data })
          }
        })
      })
      
      req.on('error', reject)
      req.write(postData)
      req.end()
    })
    
    console.log(`📊 响应状态: ${result.status}`)
    console.log('📝 解析结果:')
    console.log('  标题:', result.data.result?.title || '未解析')
    console.log('  日期:', result.data.result?.dueDate || '❌ 未解析')
    console.log('  分类:', result.data.result?.category || '未解析')
    console.log('  标签:', result.data.result?.tags?.join(', ') || '无')
    console.log('  备注:', result.data.result?.notes || '无')
    
    if (result.data.warning) {
      console.log('⚠️ 警告:', result.data.warning)
    }
    
    // 分析结果
    if (result.data.result?.dueDate) {
      console.log('\n✅ 时间解析成功!')
    } else {
      console.log('\n❌ 时间解析失败!')
      console.log('💡 可能原因:')
      console.log('1. OpenAI没有正确理解时间表达式')
      console.log('2. parseDateExpression函数处理有问题')
      console.log('3. prompt需要进一步优化')
    }
    
  } catch (error) {
    console.log('❌ 测试失败:', error.message)
    if (error.code === 'ECONNREFUSED') {
      console.log('💡 请确保后端服务正在运行 (npm run dev)')
    }
  }
}

testTimeParsing()
